To explore Ephedra californica recovery following clipping. Year two in a long-term shrub removal experiment. Aboveground clipping. Panoche Hills Ecological Reserve. The manipulative research was done at site 1.1, the plateau within this reserve.
Removal done by A. Liczner, A. Filazzola, T. Noble, and M. Westphal. Loss of shrub effects on animals experiment separate from this survey initiated by A. Liczner and completed 2016. Eva Gruber surveyed for resprouting.
An examination of the evidence associated with pattern analyses between ephedra and other plant species at Panoche Hills Ecological Reserve.
#Data
#Primary
foundation <- read_csv("data/ephedra.foundation.csv")
foundation <- foundation %>% mutate(volume = ((length + width)/2)^3*3.14*(1/3))
foundation$year <- as.character(foundation$year)
foundation$site <- as.character(foundation$site)
foundation
## # A tibble: 450 × 11
## year region site rep microsite length width height abundance
## <chr> <chr> <chr> <int> <chr> <dbl> <dbl> <dbl> <int>
## 1 2016 Panoche 1.3 1 Shrub 3.77 2.38 1.59 263
## 2 2016 Panoche 1.3 1 Open NA NA NA 106
## 3 2016 Panoche 1.3 2 Shrub 3.22 2.38 1.84 276
## 4 2016 Panoche 1.3 2 Open NA NA NA 245
## 5 2016 Panoche 1.3 3 Shrub 1.95 1.30 0.59 217
## 6 2016 Panoche 1.3 3 Open NA NA NA 175
## 7 2016 Panoche 1.3 4 Shrub 4.21 4.39 1.71 283
## 8 2016 Panoche 1.3 4 Open NA NA NA 214
## 9 2016 Panoche 1.3 5 Shrub 3.41 3.17 1.55 241
## 10 2016 Panoche 1.3 5 Open NA NA NA 233
## # ... with 440 more rows, and 2 more variables: richness <int>,
## # volume <dbl>
#Effect sizes
foundation.rii <- read_csv("data/ephedra.foundation.rii.csv")
foundation.rii <- foundation.rii %>% mutate(volume = ((length + width)/2)^3*3.14*(1/3))
foundation.rii$year <- as.character(foundation.rii$year)
foundation.rii$site <- as.character(foundation.rii$site)
foundation.rii <- foundation.rii %>% filter(abundance < 0.8 & abundance > -0.7)
foundation.rii
## # A tibble: 223 × 10
## year region site rep microsite length width abundance richness
## <chr> <chr> <chr> <int> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 2013 Panoche 1.1 1 Shrub 4.5 4.8 0.22580645 0.0000000
## 2 2013 Panoche 1.1 2 Shrub 2.9 2.1 0.09803922 0.1111111
## 3 2013 Panoche 1.1 3 Shrub 1.2 1.2 0.04761905 0.0000000
## 4 2013 Panoche 1.1 4 Shrub 1.9 2.1 0.21739130 0.0000000
## 5 2013 Panoche 1.1 5 Shrub 3.4 4.4 0.16666667 -0.1428571
## 6 2013 Panoche 1.1 6 Shrub 4.1 2.1 0.39622641 -0.1428571
## 7 2013 Panoche 1.1 7 Shrub 2.4 2.3 0.21212121 0.1428571
## 8 2013 Panoche 1.1 8 Shrub 3.2 3.0 0.16666667 0.0000000
## 9 2013 Panoche 1.1 9 Shrub 4.1 3.8 0.35849057 -0.1428571
## 10 2013 Panoche 1.1 10 Shrub 3.2 3.1 0.31343284 -0.1428571
## # ... with 213 more rows, and 1 more variables: volume <dbl>
rii.2013 <- foundation.rii %>% filter(year == "2013")
rii.2014 <- foundation.rii %>% filter(year == "2014")
rii.2015 <- foundation.rii %>% filter(year == "2015")
rii.2016 <- foundation.rii %>% filter(year == "2016")
#Rii
#differences from open
ggplot(foundation.rii, aes(year, abundance)) + geom_boxplot(fill = "darkseagreen3") + ylab("Rii abundance")
ggplot(foundation.rii, aes(year,richness)) + geom_boxplot(fill = "darkseagreen3") + ylab("Rii richness")
#models for different between years
require(lmerTest)
m <- lmer(abundance~(1|year) + volume, data = foundation.rii)
#summary(m)
anova(m, test = "Chisq")
## Analysis of Variance Table of type III with Satterthwaite
## approximation for degrees of freedom
## Sum Sq Mean Sq NumDF DenDF F.value Pr(>F)
## volume 0.28695 0.28695 1 220.41 3.9366 0.04849 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
rand(m) #to get p-values for random effects
## Analysis of Random effects Table:
## Chi.sq Chi.DF p.value
## year 3.58 1 0.06 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
m <- lmer(richness~(1|year) + volume, data = foundation.rii)
#summary(m)
anova(m, test = "Chisq")
## Analysis of Variance Table of type III with Satterthwaite
## approximation for degrees of freedom
## Sum Sq Mean Sq NumDF DenDF F.value Pr(>F)
## volume 0.18022 0.18022 1 218.58 2.987 0.08535 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
rand(m)
## Analysis of Random effects Table:
## Chi.sq Chi.DF p.value
## year 54.5 1 2e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#different from zero
#ab
t1 <- t.test(foundation.rii$abundance, mu = 0)
t1
##
## One Sample t-test
##
## data: foundation.rii$abundance
## t = 8.5519, df = 222, p-value = 1.988e-15
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 0.1215495 0.1943441
## sample estimates:
## mean of x
## 0.1579468
#richness
t2 <- t.test(foundation.rii$richness, mu = 0)
t2
##
## One Sample t-test
##
## data: foundation.rii$richness
## t = -6.1717, df = 222, p-value = 3.171e-09
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.15553974 -0.08024948
## sample estimates:
## mean of x
## -0.1178946
# ab each year
t1 <- t.test(rii.2013$abundance, mu = 0)
t1
##
## One Sample t-test
##
## data: rii.2013$abundance
## t = 8.6815, df = 43, p-value = 5.253e-11
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 0.1640679 0.2633583
## sample estimates:
## mean of x
## 0.2137131
t1 <- t.test(rii.2014$abundance, mu = 0)
t1
##
## One Sample t-test
##
## data: rii.2014$abundance
## t = 4.4799, df = 44, p-value = 5.256e-05
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 0.1292521 0.3406396
## sample estimates:
## mean of x
## 0.2349459
t1 <- t.test(rii.2015$abundance, mu = 0)
t1
##
## One Sample t-test
##
## data: rii.2015$abundance
## t = 2.9259, df = 44, p-value = 0.005416
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 0.03062158 0.16618316
## sample estimates:
## mean of x
## 0.09840237
t1 <- t.test(rii.2016$abundance, mu = 0)
t1
##
## One Sample t-test
##
## data: rii.2016$abundance
## t = 3.9614, df = 88, p-value = 0.000151
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 0.06057307 0.18252997
## sample estimates:
## mean of x
## 0.1215515
#richness by year
t2 <- t.test(rii.2013$richness, mu = 0)
t2
##
## One Sample t-test
##
## data: rii.2013$richness
## t = 0.075117, df = 43, p-value = 0.9405
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.03475463 0.03744386
## sample estimates:
## mean of x
## 0.001344615
t2 <- t.test(rii.2014$richness, mu = 0)
t2
##
## One Sample t-test
##
## data: rii.2014$richness
## t = 2.668, df = 44, p-value = 0.01064
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## 0.02465005 0.17688174
## sample estimates:
## mean of x
## 0.1007659
t2 <- t.test(rii.2015$richness, mu = 0)
t2
##
## One Sample t-test
##
## data: rii.2015$richness
## t = -4.6118, df = 44, p-value = 3.435e-05
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.24208568 -0.09484554
## sample estimates:
## mean of x
## -0.1684656
t2 <- t.test(rii.2016$richness, mu = 0)
t2
##
## One Sample t-test
##
## data: rii.2016$richness
## t = -8.6023, df = 88, p-value = 2.702e-13
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.3223218 -0.2013451
## sample estimates:
## mean of x
## -0.2618334
#volume####
ggplot(foundation.rii, aes(volume, abundance)) + geom_point(aes(color = year)) + geom_smooth(method = "lm") + xlab("volume (m^3)")
ggplot(foundation.rii, aes(volume, abundance, color = year)) + geom_point() + geom_smooth(method = "lm", se = FALSE) + xlab("volume (m^3)")
ggplot(foundation.rii, aes(volume, richness)) + geom_point(aes(color=year)) + geom_smooth(method = "lm") + xlab("volume (m^3)")
ggplot(foundation.rii, aes(volume, richness, color = year)) + geom_point() + geom_smooth(method = "lm", se = FALSE) + xlab("volume (m^3)")
#posthoc tests from main models
#abundance
m <- lm(abundance~volume, data = foundation.rii)
m
##
## Call:
## lm(formula = abundance ~ volume, data = foundation.rii)
##
## Coefficients:
## (Intercept) volume
## 0.1889542 -0.0009065
summary(m)
##
## Call:
## lm(formula = abundance ~ volume, data = foundation.rii)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.80630 -0.16057 0.01776 0.18475 0.64730
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.1889542 0.0257240 7.345 3.91e-12 ***
## volume -0.0009065 0.0005259 -1.724 0.0862 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2746 on 221 degrees of freedom
## Multiple R-squared: 0.01327, Adjusted R-squared: 0.0088
## F-statistic: 2.971 on 1 and 221 DF, p-value: 0.08617
#Quantile regression check
require(quantreg)
m <- rq(abundance~volume, data = foundation.rii)
m
## Call:
## rq(formula = abundance ~ volume, data = foundation.rii)
##
## Coefficients:
## (Intercept) volume
## 0.1770857890 -0.0003341471
##
## Degrees of freedom: 223 total; 221 residual
summary(m, se = "nid")
##
## Call: rq(formula = abundance ~ volume, data = foundation.rii)
##
## tau: [1] 0.5
##
## Coefficients:
## Value Std. Error t value Pr(>|t|)
## (Intercept) 0.17709 0.02727 6.49269 0.00000
## volume -0.00033 0.00043 -0.77592 0.43862
#richness
m <- lm(richness~volume, data = foundation.rii)
m
##
## Call:
## lm(formula = richness ~ volume, data = foundation.rii)
##
## Coefficients:
## (Intercept) volume
## -0.1515101 0.0009828
summary(m)
##
## Call:
## lm(formula = richness ~ volume, data = foundation.rii)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.54197 -0.20375 0.00403 0.18907 0.79721
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.1515101 0.0265882 -5.698 3.84e-08 ***
## volume 0.0009828 0.0005436 1.808 0.072 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2838 on 221 degrees of freedom
## Multiple R-squared: 0.01457, Adjusted R-squared: 0.01011
## F-statistic: 3.268 on 1 and 221 DF, p-value: 0.07198
#Quantile regression
m <- rq(richness~volume, data = foundation.rii)
m
## Call:
## rq(formula = richness ~ volume, data = foundation.rii)
##
## Coefficients:
## (Intercept) volume
## -0.14999479 0.00111274
##
## Degrees of freedom: 223 total; 221 residual
summary(m, se = "nid")
##
## Call: rq(formula = richness ~ volume, data = foundation.rii)
##
## tau: [1] 0.5
##
## Coefficients:
## Value Std. Error t value Pr(>|t|)
## (Intercept) -0.14999 0.02795 -5.36650 0.00000
## volume 0.00111 0.00045 2.49268 0.01341
#test 2016 only
m <- lm(abundance~volume, data = rii.2016)
m
##
## Call:
## lm(formula = abundance ~ volume, data = rii.2016)
##
## Coefficients:
## (Intercept) volume
## 0.217302 -0.002641
summary(m)
##
## Call:
## lm(formula = abundance ~ volume, data = rii.2016)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.78160 -0.12944 0.00135 0.23578 0.46049
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.217302 0.040966 5.304 8.49e-07 ***
## volume -0.002641 0.000796 -3.318 0.00133 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2743 on 87 degrees of freedom
## Multiple R-squared: 0.1123, Adjusted R-squared: 0.1021
## F-statistic: 11.01 on 1 and 87 DF, p-value: 0.001325
m <- lm(richness~volume, data = rii.2016)
m
##
## Call:
## lm(formula = richness ~ volume, data = rii.2016)
##
## Coefficients:
## (Intercept) volume
## -0.344154 0.002271
summary(m)
##
## Call:
## lm(formula = richness ~ volume, data = rii.2016)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.40545 -0.26604 0.03897 0.21848 0.59324
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.344154 0.041271 -8.339 1.01e-12 ***
## volume 0.002271 0.000802 2.831 0.00576 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2763 on 87 degrees of freedom
## Multiple R-squared: 0.08437, Adjusted R-squared: 0.07385
## F-statistic: 8.017 on 1 and 87 DF, p-value: 0.005756
#Primary data
#ggplot(foundation, aes(microsite, abundance)) + geom_boxplot() + facet_grid(~year)
#ggplot(foundation, aes(microsite, richness)) + geom_boxplot() + facet_grid(~year)
#ggplot(foundation, aes(volume, abundance, color = year)) + geom_point() + geom_smooth(method = "lm")
#ggplot(foundation, aes(volume, richness, color = year)) + geom_point() + geom_smooth(method = "lm")
#wrangle primary data
data <- read_csv("data/EH.recovery.2016.csv")
data <- data %>% mutate(volume = ((length + width)/2)^3*3.14*(1/3)) %>% arrange(desc(resprout))
data
## # A tibble: 40 × 9
## date census ID length width height resprout
## <chr> <chr> <int> <dbl> <dbl> <dbl> <int>
## 1 nov.2016 post.2 182 1.20 1.40 0.91 15
## 2 nov.2016 post.2 217 1.15 1.25 0.85 15
## 3 nov.2016 post.2 303 3.50 2.80 0.60 13
## 4 nov.2016 post.2 614 1.70 1.15 0.43 12
## 5 nov.2016 post.2 146 3.40 2.15 0.70 10
## 6 nov.2016 post.2 621 1.85 0.90 0.65 10
## 7 nov.2016 post.2 651 2.55 2.40 1.00 10
## 8 nov.2016 post.2 137 1.90 3.30 0.60 9
## 9 nov.2016 post.2 245 3.20 2.50 0.80 8
## 10 nov.2016 post.2 271 2.80 2.55 0.71 8
## # ... with 30 more rows, and 2 more variables: observations <chr>,
## # volume <dbl>
#stem data####
wet.weights <-read.csv("data/wet.weights.csv")
total.weight <- wet.weights %>% select(ID, total.weight)
stems <- read_csv("data/stem.analyses.csv")
#current volume used####
nov.2016 <- data %>% filter(date == "nov.2016") #only resurvey
nov.2016 <- left_join(nov.2016, total.weight, by = "ID")
#setup volume####
setup <- data %>% filter(date == "april.2013") %>%
select(ID, volume) %>% rename(setup.vol = volume)
merged.data <- left_join(nov.2016, setup)
merged.data <- left_join(merged.data, stems, by = "ID")
#Recovery####
#Viz
#ggplot(nov.2016, aes(resprout, weight= volume)) +
#geom_histogram(binwidth = 2, fill = "darkseagreen3") +
#xlab("number of shoots resprouted") +
#ylab("relative weighted frequency by current volume") +
#xlim(0,15)
ggplot(nov.2016, aes(resprout, weight= volume)) +
geom_density(kernel = "gaussian", fill = "darkseagreen3") +
xlab("number of shoots resprouted") +
ylab("relative weighted frequency by current volume") +
xlim(0,15)
ggplot(nov.2016, aes(height, weight= volume)) +
geom_density(kernel = "gaussian", fill = "darkseagreen3") +
xlab("height (m)") +
ylab("relative weighted frequency by current volume")
#ggplot(nov.2016, aes(total.weight, weight= volume)) +
#geom_histogram(binwidth = 700, fill = "darkseagreen3") +
#xlab("total biomass (g)") +
#ylab("relative weighted frequency by current volume")
ggplot(nov.2016, aes(total.weight, weight= volume)) +
geom_density(kernel = "gaussian", fill = "darkseagreen3") +
xlab("total biomass (g)") +
ylab("relative weighted frequency by current volume") +
xlim(0,5000)
summary(nov.2016)
## date census ID length
## Length:20 Length:20 Min. :137.0 Min. :0.000
## Class :character Class :character 1st Qu.:199.2 1st Qu.:1.200
## Mode :character Mode :character Median :288.0 Median :1.875
## Mean :368.8 Mean :1.992
## 3rd Qu.:561.5 3rd Qu.:2.763
## Max. :651.0 Max. :3.550
##
## width height resprout observations
## Min. :0.000 Min. :0.0000 Min. : 0.00 Length:20
## 1st Qu.:0.900 1st Qu.:0.6000 1st Qu.: 3.75 Class :character
## Median :1.225 Median :0.7000 Median : 8.00 Mode :character
## Mean :1.495 Mean :0.6955 Mean : 7.35
## 3rd Qu.:2.212 3rd Qu.:0.8500 3rd Qu.:10.00
## Max. :3.300 Max. :1.0000 Max. :15.00
##
## volume total.weight
## Min. : 0.000 Min. : 547
## 1st Qu.: 1.895 1st Qu.: 736
## Median : 3.370 Median :1087
## Mean : 9.383 Mean :1896
## 3rd Qu.:18.806 3rd Qu.:2849
## Max. :32.714 Max. :5248
## NA's :3
#Size-dependent recoveries####
#Primary data
ggplot(merged.data, aes(setup.vol, resprout)) +
geom_point(color = "darkseagreen3") +
geom_smooth(method = "lm", color = "darkseagreen3") +
xlab("initial shrub volume (m^3)") +
ylab("number of shoots resprouted")
ggplot(merged.data, aes(setup.vol, total.weight)) +
geom_point(color = "darkseagreen3") +
geom_smooth(method = "lm", color = "darkseagreen3") +
xlab("initial shrub volume (m^3)") +
ylab("total biomass (g)")
#simple models
#shoots
fit <-lm(resprout ~ setup.vol, data = merged.data)
summary(fit)
##
## Call:
## lm(formula = resprout ~ setup.vol, data = merged.data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -8.273 -2.950 1.756 1.756 11.122
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.555190 0.196761 43.48 <2e-16 ***
## setup.vol -0.072511 0.006399 -11.33 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.104 on 544 degrees of freedom
## Multiple R-squared: 0.191, Adjusted R-squared: 0.1895
## F-statistic: 128.4 on 1 and 544 DF, p-value: < 2.2e-16
plot(fit)
res <- resid(fit)
#plot(merged.data$resprout, res)
plot(merged.data$setup.vol, abs(res))
m <- glm(resprout ~ setup.vol, data = merged.data)
summary(m)
##
## Call:
## glm(formula = resprout ~ setup.vol, data = merged.data)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -8.273 -2.950 1.756 1.756 11.122
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 8.555190 0.196761 43.48 <2e-16 ***
## setup.vol -0.072511 0.006399 -11.33 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 9.63211)
##
## Null deviance: 6476.6 on 545 degrees of freedom
## Residual deviance: 5239.9 on 544 degrees of freedom
## AIC: 2790.2
##
## Number of Fisher Scoring iterations: 2
anova(m, test = "Chisq")
## Analysis of Deviance Table
##
## Model: gaussian, link: identity
##
## Response: resprout
##
## Terms added sequentially (first to last)
##
##
## Df Deviance Resid. Df Resid. Dev Pr(>Chi)
## NULL 545 6476.6
## setup.vol 1 1236.7 544 5239.9 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#biomass
fit <-lm(total.weight ~ setup.vol, data = merged.data)
summary(fit)
##
## Call:
## lm(formula = total.weight ~ setup.vol, data = merged.data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3400 -1312 1266 1266 4197
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4269.731 107.670 39.66 <2e-16 ***
## setup.vol -67.088 3.506 -19.13 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1692 on 541 degrees of freedom
## (3 observations deleted due to missingness)
## Multiple R-squared: 0.4036, Adjusted R-squared: 0.4025
## F-statistic: 366.1 on 1 and 541 DF, p-value: < 2.2e-16
plot(fit)
m <- glm(total.weight ~ setup.vol, data = merged.data)
summary(m)
##
## Call:
## glm(formula = total.weight ~ setup.vol, data = merged.data)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -3400 -1312 1266 1266 4197
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4269.731 107.670 39.66 <2e-16 ***
## setup.vol -67.088 3.506 -19.13 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for gaussian family taken to be 2861881)
##
## Null deviance: 2595938131 on 542 degrees of freedom
## Residual deviance: 1548277535 on 541 degrees of freedom
## (3 observations deleted due to missingness)
## AIC: 9617.7
##
## Number of Fisher Scoring iterations: 2
anova(m, test = "Chisq")
## Analysis of Deviance Table
##
## Model: gaussian, link: identity
##
## Response: total.weight
##
## Terms added sequentially (first to last)
##
##
## Df Deviance Resid. Df Resid. Dev Pr(>Chi)
## NULL 542 2595938131
## setup.vol 1 1047660596 541 1548277535 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Proportion regrowth by initial shrub size
#calculate proportion reprouting by initial size
#merged.data <-merged.data %>% mutate(relative.regrowth = resprout/setup.vol)
#merged.data <-merged.data %>% mutate(relative.biomass.regrowth = total.weight/setup.vol) #calculate proportion reprouting by initial size
#ggplot(merged.data, aes(volume, relative.regrowth)) + geom_point(color = "darkseagreen3") + xlab("current shrub volume") +
#geom_smooth(method = lm, color = "darkseagreen3") +
#ylab("regrowth weighted by initial shrub size") +
#scale_y_continuous(breaks=c(-2,-1,0,1,2))
#ggplot(merged.data, aes(volume, relative.biomass.regrowth)) + geom_point(color = "darkseagreen3") + xlab("current shrub volume") +
#geom_smooth(method = lm, color = "darkseagreen3") +
#ylab("biomass regrowth weighted by initial shrub size") +
#scale_y_continuous(breaks=c(-2,-1,0,1,2))
#m3 <- lm(merged.data$relative.regrowth ~ merged.data$volume)
#summary(m3) # slope is not significantly different from 0 so no difference in proportionate regrowth
#anova(m3, test = "Chisq")
#m3.1 <- lm(merged.data$relative.biomass.regrowth ~ merged.data$volume)
#summary(m3.1) # slope is not significantly different from 0 so no difference in proportionate regrowth
#anova(m3.1, test = "Chisq")
#number of resprouted shoots predict wet weight
ggplot(nov.2016, aes(resprout, total.weight)) +
geom_point(color = "seagreen3") +
xlab("resprouted shoot numbers") +
ylab("total biomass (g)") +
geom_smooth(method = lm, color = "seagreen3")
#quick test
fit <- lm(total.weight ~ resprout, data= nov.2016)
summary(fit)
##
## Call:
## lm(formula = total.weight ~ resprout, data = nov.2016)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2127.08 -615.68 -99.73 1120.22 2763.02
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 594.48 738.92 0.805 0.4337
## resprout 189.05 95.54 1.979 0.0665 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1390 on 15 degrees of freedom
## (3 observations deleted due to missingness)
## Multiple R-squared: 0.207, Adjusted R-squared: 0.1541
## F-statistic: 3.916 on 1 and 15 DF, p-value: 0.06649
ggplot(nov.2016, aes(volume, total.weight)) +
geom_point(color = "seagreen3") +
xlab("shrub volumes (m^3)") +
ylab("total biomass (g)") +
geom_smooth(method = lm, color = "seagreen3")
#quick test
fit <- lm(total.weight ~ volume, data= nov.2016)
summary(fit)
##
## Call:
## lm(formula = total.weight ~ volume, data = nov.2016)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2045.56 -437.74 -66.36 467.51 2879.01
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 887.75 414.97 2.139 0.04926 *
## volume 93.35 27.83 3.354 0.00435 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1180 on 15 degrees of freedom
## (3 observations deleted due to missingness)
## Multiple R-squared: 0.4286, Adjusted R-squared: 0.3905
## F-statistic: 11.25 on 1 and 15 DF, p-value: 0.004347
#Wet biomass predictor for dry weights
ggplot(merged.data, aes(total.weight, total.dry.weight.g)) +
geom_point(color = "seagreen3") +
xlab("total wet biomass (g)") +
ylab("total dry weight (g)") +
geom_smooth(method = "lm", color = "seagreen3")
fit <- lm(total.dry.weight.g ~ total.weight, data= merged.data)
summary(fit)
##
## Call:
## lm(formula = total.dry.weight.g ~ total.weight, data = merged.data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -670.37 -23.23 37.01 37.01 2341.93
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -171.98974 49.50471 -3.474 0.000573 ***
## total.weight 0.95274 0.01173 81.232 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 438.2 on 370 degrees of freedom
## (174 observations deleted due to missingness)
## Multiple R-squared: 0.9469, Adjusted R-squared: 0.9468
## F-statistic: 6599 on 1 and 370 DF, p-value: < 2.2e-16
library(outliers)
chisq.out.test(merged.data$resprout)
##
## chi-squared test for outlier
##
## data: merged.data$resprout
## X-squared = 5.507, p-value = 0.01894
## alternative hypothesis: highest value 15 is an outlier
chisq.out.test(merged.data$total.weight)
##
## chi-squared test for outlier
##
## data: merged.data$total.weight
## X-squared = 1.3045, p-value = 0.2534
## alternative hypothesis: highest value 5248 is an outlier
chisq.out.test(merged.data$total.dry.weight.g)
##
## chi-squared test for outlier
##
## data: merged.data$total.dry.weight.g
## X-squared = 2.425, p-value = 0.1194
## alternative hypothesis: lowest value 443 is an outlier
ggplot(merged.data, aes(total.singletons, total.complex.green.shoots)) + geom_point(color = "seagreen3") +
geom_smooth(method = lm, color = "seagreen3")
ggplot(merged.data, aes(total.singletons, total.woody.shoots)) + geom_point(color = "seagreen3") +
geom_smooth(method = lm, color = "seagreen3")
ggplot(merged.data, aes(resprout, total.singletons)) +
geom_point(color = "seagreen3") +
geom_smooth(method = lm, color = "seagreen3") +
xlab("number of shoots resprouted") +
ylab("total number of axillary singleton shoots")
fit <- lm(resprout~total.singletons, data= merged.data)
summary(fit)
##
## Call:
## lm(formula = resprout ~ total.singletons, data = merged.data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.8408 -1.5615 -0.0064 -0.0064 7.4167
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.6806915 0.1429728 25.74 <2e-16 ***
## total.singletons 0.0072792 0.0002502 29.09 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.125 on 540 degrees of freedom
## (4 observations deleted due to missingness)
## Multiple R-squared: 0.6105, Adjusted R-squared: 0.6097
## F-statistic: 846.3 on 1 and 540 DF, p-value: < 2.2e-16
chisq.out.test(merged.data$total.singletons)
##
## chi-squared test for outlier
##
## data: merged.data$total.singletons
## X-squared = 1.3819, p-value = 0.2398
## alternative hypothesis: highest value 869 is an outlier
ggplot(merged.data, aes(volume, total.singletons)) +
geom_point(color = "seagreen3") +
geom_smooth(method = lm, color = "seagreen3")
Primary trends.
Counting resprouted shoots is an effective and relatively accurate mechanism to estimate regrowth in Ephedra californica following damage. Trends in regrowth similar between shoot number and total wet weight, and shoot number significantly and effectively predicts the mass of biomass regrowth per shrub.
Larger shrubs have more resprouted shoots and regrowth of biomass; however, the regrowth is not proportionately greater for increasingly larger shrubs. THIS is an important finding. Larger shrubs do NOT have a greater capacity to proportionally recover from damage relative to smaller shrubs.
Ephedra californica can recover to some extent following damage. However, we do not know how these recovery patterns compare to the background growth patterns of undamaged shrubs nor whether subsequent or repeated damages to this species reduces its potential capacity to recover.
Methodologically, wet weight is an effective measure of biomass produced (i.e. predicts dry weight effectively with little variation).
Future directions.
Remeasure recovery in 1 and 2 years to this new clipping event.
Develop a means to estimate growth rate in undamaged shrubs for the next 1-2years.